package consts

// 操作相关错误

var (
	C错误_无标签 = C错误类型{
		状态码:  400,
		错误信息: "未提供标签",
	}
)

func X新建结构键未找到错误(键 string) C错误类型 {
	return X新建结构验证错误("字段 " + 键 + " 未找到")
}

func X新建结构验证错误(信息 string) C错误类型 {
	return C错误类型{
		状态码:  400,
		错误信息: 信息,
	}
}

func X新建请求验证错误(信息 string) C错误类型 {
	return C错误类型{
		状态码:  400,
		错误信息: 信息,
	}
}

func X新建方法不支持错误(信息 string) C错误类型 {
	return C错误类型{
		状态码:  400,
		错误信息: 信息,
	}
}

// 访问控制相关错误

func X新建拒绝访问错误(键, 角色 string) C错误类型 {
	return C错误类型{
		状态码:  403,
		错误信息: "拒绝访问节点: " + 键 + " 角色: " + 角色,
	}
}

func X新建无访问权限错误(键, 角色 string) C错误类型 {
	return C错误类型{
		状态码:  403,
		错误信息: "节点无访问权限: " + 键 + " 角色: " + 角色,
	}
}

func X新建访问配置未找到错误(键 string) C错误类型 {
	return C错误类型{
		状态码:  404,
		错误信息: "访问配置未找到: " + 键,
	}
}

func X新建请求未找到错误(键 string) C错误类型 {
	return C错误类型{
		状态码:  404,
		错误信息: "请求未找到: " + 键,
	}
}

func X新建系统错误(信息 string) C错误类型 {
	return C错误类型{
		状态码:  500,
		错误信息: 信息,
	}
}

type C错误类型 struct {
	状态码  int
	错误信息 string
}

func (错误 C错误类型) H获取状态码() int {
	return 错误.状态码
}

func (错误 C错误类型) Error() string {
	return 错误.错误信息
}
